package com.test.springboot.alicloudoss.utils;

import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author thinkpad - 83start
 * @version v1.0
 * @create 2022/8/10 21:41
 * @package com.test.springboot.alicloudoss.utils
 * @description 文件说明
 */

public class AlicloudOssUtil {

    /**
     * 获取文件的完整的上传路径
     *    设置文件新路径:
     *      - 如果指定了文件路径，则用文件用户指定的文件路径
     *      - 如果用户没有指定文件路径，则使用时间作为文件路径
     * @param file
     * @param filePath
     * @return
     */
    public static String getFilePath(MultipartFile file,String filePath){
        String fileName = file.getOriginalFilename();

        if (filePath.isEmpty() || filePath.equals(" ")){
            return getTimeFilePath(fileName);
        }else{
            // 判断路径的最后一个字符是否是 “/”
            if (! filePath.substring(filePath.length()-1).equals("/")){
                filePath += '/';
            }
            return filePath + fileName;
        }
    }

    /**
     * 根据时间生成 文件路径和文件名
     * @param sourceFileName
     * @return
     */
    public static String getTimeFilePath(String sourceFileName) {
        DateTime dateTime = new DateTime();
        return "File/Springboot/" + dateTime.toString("yyyy")
                + "/" + dateTime.toString("MM") + "/"
                + dateTime.toString("dd") + "/" + System.currentTimeMillis() +
                RandomUtils.nextInt(100, 9999) + "." +
                StringUtils.substringAfterLast(sourceFileName, ".");
    }























}
